Skip to main content

mis report

Summary Doc

Type of Report -

Standard / Brand-Specific

Purpose of the Report -

A Management Information System (MIS) for the live chat team audit is a structured and automated system designed to collect, process, and present relevant information regarding the performance and activities of the live chat team. It serves the purpose of auditing and evaluating the quality, efficiency, and effectiveness of live chat interactions managed by individual agents or the team as a whole. The report we have created to check various aspects of agents that are handling different types of chats while conversation.

The report is divided into two parts :

  • Chat Dump Report - This is a channel wise dump report consisting of

    all session wise dump data.

  • Chat summary Report - This is a summary report for all the above

    mentioned dump data.

Frequency of Report : This is an hourly report which is sent with the cumulative data. We also have an EOD Report for the same.

Detailed Description -

Dump Report:

Name of ColumnDescription of FieldWhere is the value fetched from
Session Created at BOTTimestamp of session creation by BOTsessionInfo collection from createdAt
Session Created at AgentTimestamp when chat is pushed to queuesessionInfo collect from inQueueTime
Session accepted or assigned at AgentTimestamp when chat is accepted by agentAgent Customer collection from createdAt
Session ended at AgentTimestamp when session is ended by agentAgent customer collection from endTime
Agent First ResponseTimestamp of agent's first messageAgent customer collection from agentFirstResponseTime
Session lifetime BOT + AgentTotal session time which includes bot interaction and live chat interactionsessionInfo and agent Customer collection
botLifeTime = sessionBot - inQueueTime
shortChat = sessionAgentStart - sessionAgentEnd
Value = botLifeTime + shortChat
Session Life time AgentTotal time where chat was handled by agentAgent customer collection.
shortChat = sessionAgentStart - sessionAgentEnd
Session wait time AgentTotal waiting time till the agent assignmentsessionInfo Value = assignTime - inQueueTime
Agent - Stall countWhen agent didn't reply in 15 secsessionInfo from stall.customer.stallCount
Agent - Stall OccurrencesCounter to determine the count for agent stall occurrencessessionInfo from stall.customer.iterationCount
Customer - Stall countCounter to determine the late reply of customersessionInfo collection from stall.customer.stallCount
Customer - Stall OccurrencesCounter to determine how many times customer stall have occurredsessionInfo collection from stall.customer.iterationCount
Session StatusIndicator for session status such as disconnected, answered, etc.sessionInfo collection from status
TNPS TriggerIndication to check whether tnps is triggeredsessionInfo collection from endConversation
TNPS last ShownTimestamp of last tnps triggered to usersessionInfo collection from endTime
Message IDUnique id of customer (PSID)sessionInfo collection from psid
Interaction IDUnique id of chat session (sessionId)sessionInfo collection from sessionId
MobilePhone number of user (msisdn)sessionInfo collection from userInfo.phone_no
LOBKey to identify segments of users.
For example: prepaid or postpaid
sessionInfo collection from userInfo.subscriptionType
Agent Login nameName of agent including firstname and lastnameAdminUsers collection from Agent Login name
Agent Psudeo NamePseudo name of agentAgent customer collection from agentPseudoName
CircleCode to determine location of numbersessionInfo collection from userInfo.DXLcircleID
MediaIndicator to know channel of userchatSessions collection from log_info.query.channelName
Alt Contact No QueryAlternate contact number of users.sessionInfo from customAgentNotes.alternateNumber
BrowserBrowser informationchatSessions collection from log_info .platform_info.name
OS NameOperating system informationchatSessions collection from log_info.platform_info.os.family
OS VersionVersion of operating systemchatSessions collection from log_info.platform_info.os.version
Customer NameName of customersessionInfo collection from userInfo.customer_name
QueueName of queue where chat is pushed (customer group)sessionInfo collection from userInfo.customerGroup
Chat DisconnectionReason for chat disconnectionsessionInfo collection from disconnectionReason
CompanyCompany detailssessionInfo collection from userInfo.company
CallbackIndicator if callback is required for this sessionsessionInfo collection from blank
Redirected to AppIndicator if user is redirected to appsessionInfo collection from redirectedToApp
EscalateIndicator of chat escalationsessionInfo collection from Escalate
AON in MonthsAge of networkAdmin Users collenction from goLiveDate
RecommendationFeedback scores for recommendation in tnps feedbacksessionInfo collection from feedback.recommendation
SatisfactionFeedback scores for satisfaction in tnps feedbacksessionInfo collection from feedback.adviserRating
CeisFeedback scores for satisfaction in tnps feedbacksessionInfo collection from feedback.ceis
VerbatimFeedback comment in tnps feedbacksessionInfo collection from feedback.feedback
IP addressIp address of userChatsessions collection from log_info.ip_addr
Agent Con CapConcurrency of agentadminUsers collection from chatConcurrency from preChatQuery1
Query Type from Pre chat Form 2Events before livechat transfersessionInfo collection from preChatQuery2
Query Type from Prechat Form 3Events before livechat transfersessionInfo collection from preChatQuery3
Tranfer - P2PFlag for identify if transfer is due to promise 2 payAgent customer collection
Direct or BOT - ChatFlag to identify transfer typesessionInfo collection from transferType
Short Chat - \< = 60 SecsFlag to identify short interaction on livechatAgent customer collection from createdAt and endTime
shortChat = endTime -createdAt <= 60 sec
AHT Slab \< 3 \ 3 to 5 \ 5 to 10 \ 10 to 15 \ 15 to 20 \ 20 to 30 \ > 30Slab data to know AHT(average handling time)Agent customer collection from createdAt and endTime According to time in above column slabs are decided
LTRFeedback ScoressessionInfo collection from feedback.recommendation
ASATFeedback ScoressessionInfo collection from feedback.adviserRating
FTFFeedback ScoressessionInfo collection from feedback.ceis
Unique / RepeatFlag to identify customer typesessionInfo collection
Unique Sub / MonthsessionInfo collection
Agent Status - Chat EndedAgent status while chat ending. Eg : active, busy etc.agentCustomer collection from agentStateDuringClosure
Agent Con - AcceptedConcurrency after agent have accepted the chatagentCustomer collection from agentConcurrencyDuringAcceptance
Agent Con - ClosedConcurrency after agent have closed the chatagentCustomerCollection from agentConcurrencyDuringClosure
Agent Stall TimeTotal time agent went for stallChat Logs collection Compute average time for this.
Response - TotalTotal number of responses of a particular interactionChat Logs collection
Customer Response - TotalTotal number of responses of customerChat Logs collection
Agent Response - TotalTotal number of responses of agentTotal of agent canned response and agent free
Agent Response - CannedTotal number of responses in which agent used canned responsessessionInfo collection from cannedResponseUsed
Agent Response - Free TextTotal number of responses in which agent used free textsessionInfo collection from freeTextUsed
OutcallFlag to know if agent have called the user when requested for callbacksessionInfo collection from blankInfo
Outcall StatusFlag to know if users have met the TAT.sessionInfo collection from blankInfo
blank Check TimeTimestamp when agent have flagged the interaction for callbacksessionInfo collection from blankInfo
blank Uncheck TimeTimestamp when the agent has called the user .sessionInfo collection from blankInfo

Summary Report:

Name of ColumnDescription of FieldWhere is the value fetched from
QueueName of queuesessionInfo collection from userInfo.customerGroup
Chat OfferedTotal no of inqueue chatssessionInfo collection from size of pushedToQueueFromBot post grouping by customer group
Chat AnsweredTotal no. of chats answeredstatus field in sessionInfo collection. (Grouped by CG).
Chat AbandonedTotal no. of chats abandoned (chats greater than 15 sec that is disconnected by customer)sessionInfo collection.(Grouped by CG).
Chat Customer DisconnectsTotal no. of chats where chat got disconnected by customer (chats less than 15 sec that is disconnected by customer).status field in sessionInfo collection. (Grouped by CG).
Chats Rerouted to BOTTotal no. of chats that were rerouted to bot due to inqueue time expiration.status field in sessionInfo collection. (Grouped by CG).
Blank statusNo of chats where agent joined but did not messagedstatus field in sessionInfo collection (Grouped by CG).
SL%Percentage of session where agent have joined within service limitsessionInfo collection
Chat Answered within SLACount of chats that were answered within service limitsessionInfo collection by computing slcount
if (slvalue1 < 15 && slvalue1 !== 0) {
slCount++
}
Short chats < 60 secsCount of chats where chat was shortsessionInfo collection from shortChat
ACHTTotal average chat handling time for a queuesessionInfo collection
aht = ahtAgent / ahtCount;
['ahtAvg'] = timestamp(aht)
ACHT Slab n MinsSlab details of acht for a groupsessionInfo collection
sessionInfo collection
if (aht < 180000) {
ele['ahtSlab'] = '< 3 '
}
else if (aht >= 180000 && aht < 300000) {
ele['ahtSlab'] = '3 to 5'
}
else if (aht >= 300000 && aht < 600000) {
ele['ahtSlab'] = '5 to 10'
}
else if (aht >= 600000 && aht < 900000) {
ele['ahtSlab'] = '10 to 15'
}
else if (aht >= 900000 && aht < 1200000) {
ele['ahtSlab'] = '15 to 20'
}
else if (aht >= 1200000 && aht < 1800000) {
ele['ahtSlab'] = '20 to 30';
}
else if (aht >= 1800000) {
ele['ahtSlab'] = '> 30 '
}
TNPS TriggerTotal count of tnps trigger for a groupsessionInfo collection Computed as below : const tnpsTrigger = e.tnpsTrigger.filter(v => v).length;
TNPS ResponseTotal count of tnps response for a groupsessionInfo collection
Computed as below :
const tnpsResponse = e.tnpsResponse.filter(v => v).length;
LTRFeedback scores from tnps of a queuesessionInfo collection .
ltr: { $divide: [{ $subtract: ["$promoterCount", "$detractorCount"] }, "$totalCount"] }
ASATFeedback scores from tnps of a queuesessionInfo collection
asat: { $divide: [{ $subtract: ["$promoterCount", "$detractorCount"] }, "$totalCount"] },
FTFFeedback scores from tnps of a queuesessionInfo collection
ftf: { $divide: ["$promoterCount", "$divisor"] },
First time customer countTotal of first time customer countsessionInfo collection
ele['slab0'] = res5[key]['count0'] + ' ' + res5[key]['uniSlab0'];
ele['slab1'] = res5[key]['count1'] + ' ' + res5[key]['uniSlab1'];
ele['slab2'] = res5[key]['count2'] + ' ' + res5[key]['uniSlab2'];
ele['slab3'] = res5[key]['count3'] + ' ' + res5[key]['uniSlab3'];
ele['slab4'] = res5[key]['count4'] + ' ' + res5[key]['uniSlab4'];
Unique CustomerTotal number of unique customers in a queuebrandUsers Collection and sessionInfo collection
Same Day repeat SubsSame customer Same querybrandUsers Collection and sessionInfo collection
Sum of Same day Repeats ChatsSame customer different queriesbrandUsers Collection and sessionInfo collection
7 day repeat SubsSame customer Same query for 7 daysbrandUsers Collection and sessionInfo collection
Sum of7 Day repeat ChatsSame customer different query for 7 daysbrandUsers Collection and sessionInfo collection
MediaTotal count of various media like android , website etcSessioninfo collection
Computed by creating a media array of platforms.
WEBTotal count of sessions where session is created on websiteSessioninfo collection
Computed by creating a media array of platforms.
Mobile AppTotal count of sessions where session is created on mobile appSessioninfo collection
Computed by creating a media array of platforms.
Browser - IETotal count of sessions where session is created on internet explorerSessioninfo collection.
Computed by creating a browser array of chat.log_info.platform_info.name
Browser - EdgeTotal count of sessions where session is created on mobile appSessioninfo collection
Computed by creating a browser array of chat.log_info.platform_info.name
Browser - ChromeTotal count of sessions where session is created on mobile appSessioninfo collection
Computed by creating a browser array of chat.log_info.platform_info.name
Browser - MozillaTotal count of sessions where session is created on mobile appSessioninfo collection
Computed by creating a browser array of chat.log_info.platform_info.name
Browser - SafariTotal count of sessions where session is created on mobile appSessioninfo collection
Computed by creating a browser array of chat.log_info.platform_info.name
Browser - AndroidTotal count of sessions where session is created on mobile appSessioninfo collection
Computed by creating a browser array of chat.log_info.platform_info.name
Browser - IOSTotal count of sessions where session is created on mobile appSessioninfo collection
Computed by creating a browser array of chat.log_info.platform_info.name
Browser - WindowsTotal count of sessions where session is created on mobile appSessioninfo collection
Computed by creating a browser array of chat.log_info.platform_info.name
WEB OthersTotal count of sessions where session is created on mobile appSessioninfo collection
Computed by creating a browser array of chat.log_info.platform_info.name
Mobile App OthersTotal count of sessions where session is created on mobile appSessioninfo collection
Computed by creating a browser array of chat.log_info.platform_info.name
Concurrency Chat AcceptPercentage of agent utilisation in while chat acceptanceAgent customer collection and adminUsers
Avg chatconcurrency during acceptance/ avg chat concurrency from adminUser
Concurrency Chat ClosedPercentage of agent utilisation in while chat closureAgent customer collection and adminUsers
Avg chatconcurrency during acceptance/ avg chat concurrency from adminUser
BlankCount of session where blank is selectedsesssionInfo collection
Agent Stall TimeTotal time spent in agent stallChatlog and sessionInfo collection adding all agent stall of specific group
element['agentStallTime'] = timestamp(finalAvg)
Agent Stall CountAgent not 60 secsessionInfo collection.
We compute total stall count as below $group: {
_id: '$group',
totalStall: { $sum: "$stallCount" },
totalIteration: { $sum: "$iterationCount" }
}
Agent Stall OccurrencesHow many times agent stall happenedsessionInfo collection.
We compute total stall occurance as below $group:
{
_id: '$group',
totalStall: { $sum: "$stallCount" },
totalIteration: { $sum: "$iterationCount" }
}
Customer StallCustomer not replied in specific timesessionInfo collection\
Customer Stall OccurrenceHow many time customer stall happenedsessionInfo collection\
Agent First Response - AverageTotal average time of agent first response in a queueSession Info collection and agent customer collection
We compute average agent first response time

{
$addFields: {
firstResponse: {
$subtract: ['$collection.agentFirstResponseTime', '$collection.createdAt']
} }},
{
$group: {
_id: '$userInfo.customerGroup',
response: { $push: '$firstResponse' }
}
},
Customer wait Time -AverageAverage wait time for customers in a queue.sessionInfo collection\
Customer wait Time - MaxMaximum wait time for a customer in queuesessionInfo collection
waitTimeMax = (Mathmax.apply(Math, waitArr))
Customer wait Time - MinMinimum wait time for a customer in queuesessionInfo collection.
waitTimeMin = (Math.min.apply(Math, waitArr))
Query Type From Prechat Form Level 1Last query datasessionInfo collection
Computed by creating a set of all prechat1 values in a CG.
Query Type From Prechat Form Level 2Last query datasessionInfo collection
Computed by creating a set of all prechat2 values in a CG.
Query Type From Prechat Form Level 3Last query datasessionInfo collection
Computed by creating a set of all prechat3 values in a CG.
OccupancyOccupancy of agents in queueAdmin collection.
count = ((value.count element.overallAHT) / (element.hoursRequired 3600000));
element['occupancy'] = parseFloat(count).toFixed(2)
Net Abandon%Total net percentage of abandoned chatssessionInfo collection
netAbandon = (abandoned + rerouted) / offeredCount1
Total Agent logged inTotal count of agent logged inAgent analytics
Total Agent logged in handled chatsTotal count of agent logged in that was handling the chatAgent analytics collection and admin Users collection
Agent Logged in Hrs requiredTotal logged in hours of agent that are requiredAgent analytics collection and admin Users collection
Agent Logged in Hrs - ActualTotal logged in hours of agent that are actualAgent analytics collection and admin Users collection
AHT Chats handled - ActiveTotal agent handling time with active statesessionInfo and agent customer collection
AHT Chats handled - (1st & 2nd Break/Out for Lunch & Diner)Total agent handling time with (1st & 2nd Break/Out for Lunch & Diner) statesessionInfo and agent customer collection
AHT Chats handled - (Busy)Total agent handling time with busy statesessionInfo and agent customer collection
Response - TotalTotal count of responses in an interaction in a queueChatlog , agent customer and sessionInfo collection
Customer Response - TotalTotal count of customer response in a queueChatlog and sessionInfo collection
Agent Response - TotalTotal count of agent responses in a queueChatlog , sessionInfo collection
Agent Response - CannedTotal count of agent responses where agent have used canned responses for a queuesessionInfo collection from $d.cannedResponseUsed
Agent Response - Free TextTotal count of agent responses where agent have used free text for a queuesessionInfo collection $d.FreeTextUsed

Example of Report -

Image

Link of Report : MIS Report-Original

Report Format -
branch voda-uat-final
BrainService/brand-files/Reports/MISReport.js

Aggregation -
voda-uat-final
BrainService/brand-files/Reports/Chat/ChatReport.js BrainService/brand-files/Reports/Chat/chatMessageSummary.js